﻿Imports Entities
Imports Controller
Public Class InsertarLibro
    Private myController As New NegocioSQL
    Private _listaAutores As New List(Of Autor)
    Private _listalibros As List(Of Libro) = myController.SQLgetLibros.ToList
    Private Sub Insertar_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        cmbCategorias.DataSource = myController.SQLgetCategorias
        cbSoportes.DataSource = myController.SQLgetSoportes
        cbListaTodosAutores.DataSource = myController.SQLgetAutores
        TxtIsbn.MaxLength = 10
    End Sub

    Private Sub btnAceptar_Click(sender As Object, e As EventArgs) Handles btnAceptar.Click
        If (TxtIsbn.Text <> "" Or cmbCategorias.Text <> "" Or TxtEjemplares.Text <> "" Or TxtTitulo.Text <> "") Then
            If Not IsNumeric(TxtIsbn.Text) Then
                MessageBox.Show("no es un isbn adecuado porfavor introduzca otro")
                TxtIsbn.Focus()
                Exit Sub
            End If
            If TxtIsbn.Text.Length <> 10 Then
                MessageBox.Show("El ISBN tiene  que tener 10 numeros, introduzca un ISBN adecuado")
                TxtIsbn.Focus()
                Exit Sub
            End If
            Dim i As Integer = 0
            For Each miLibroIsbn In _listalibros
                
                If miLibroIsbn.Isbn.ToLower.Equals(TxtIsbn.Text.ToLower) Then
                    MessageBox.Show("El ISBN esta repetido y no puede ser el ISBN seleccionado, porfavor introduzca otro ")
                    TxtIsbn.Focus()
                    Exit Sub
                End If
                Dim titulolista As String
                Dim tituloTextbox As String
                For x As Integer = 0 To miLibroIsbn.Titulo.Length - 1
                    titulolista += miLibroIsbn.Titulo.Split(" ")(x)
                Next
                For x As Integer = 0 To TxtTitulo.Text.Length - 1
                    tituloTextbox += TxtTitulo.Text.Split(" ")(x)
                Next
                If titulolista.ToLower.Equals(tituloTextbox.ToLower) Then
                    MessageBox.Show("El titulo del libro esta repetido, introduzca otro porfavor")
                    TxtTitulo.Focus()
                    Exit Sub
                End If
            Next
            myController.SQLinsertarLibro(New Libro(TxtIsbn.Text, TryCast(cbSoportes.SelectedItem, Soporte), cmbCategorias.SelectedItem, TxtTitulo.Text, TxtEjemplares.Text), _listaAutores)
            LIMPIAR_CAJAS_DE_TEXTO()
        Else

        End If
    End Sub
    Private Sub LIMPIAR_CAJAS_DE_TEXTO()
        For Each mitextbox In Me.Controls
            If GetType(TextBox) = mitextbox.GetType Then
                TryCast(mitextbox, TextBox).Text = ""
            End If
        Next
    End Sub
    Private Sub btnAddAutor_Click(sender As Object, e As EventArgs) Handles btnAddAutor.Click
        If lstAutores.Items.Contains(cbListaTodosAutores.SelectedItem) Then
            Exit Sub
        Else
            lstAutores.Items.Add(cbListaTodosAutores.SelectedItem)
            _listaAutores.Add(cbListaTodosAutores.SelectedItem)
        End If
    End Sub
    Private Sub btnQuitarAutor_Click(sender As Object, e As EventArgs) Handles btnQuitarAutor.Click
        If lstAutores.Items.Count > 0 Then
            lstAutores.Items.Remove(lstAutores.SelectedItem)
            _listaAutores.Remove(lstAutores.SelectedItem)
        End If
    End Sub
    
End Class